package com.example.web03homework.Mapper;

import com.example.web03homework.pojo.Category;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface CategoryMapper {
    // 根据id查询分类
    Category getById(Integer id);
    // 获取所有分类
    List<Category> getAllCategories();
    // 获取所有一级分类
    List<Category> getPrimaryCategories();
    // 根据父ID获取子分类
    List<Category> getChildrenByParentId(Integer parentId);
    // 添加分类
    void insert(Category category);
    // 修改分类
    void update(Category category);
    // 删除分类
    void deleteById(Integer id);
    // 根据父ID删除子分类
    void deleteByParentId(Integer parentId);
    // 查询指定分类下的书籍数量
    int countBooksByCategoryId(Integer categoryId);
    // 查询指定分类及其子分类下的书籍数量
    int countBooksByCategoryIdWithChildren(@Param("parentId") Integer parentId);
}
